package com.cloudpivot.receivales.contract.domain.oa;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;


import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * OA 合同实体对象
 * 只接受字符串,存
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OAContract {
    /**
     * 系统分发字符串
     * 传入json需要增加的字段
     * 格式 U8,CRM 大写
     */
    @JsonProperty(value = "xitongff")
    private String xitongff;
    /**
     * 合同全部数量
     */
    @JsonProperty(value = "hetongsl")
    @NotNull(message = "合同数量不可为空")
    private double hetongsl;
    /**
     * 合同标题
     */
    @JsonProperty(value = "biaoti")
    @NotBlank(message = "合同标题不可为空")
    private String hetongmingcheng;

    /**
     * oa请求ID
     */
    @NotBlank(message = "requestId不可为空")
    @JsonProperty(value = "requestid")
    private String requestid;
    /**
     * 预计回款周期
     */
    @JsonProperty(value = "yujihuikuanzq")
    private String yujihuikuanzq;
    /**
     * 流程编号
     */
    @NotBlank(message = "流程编号不可为空")
    @JsonProperty(value = "liuchengbh")
    private String liuchengbh;
    /**
     * 申请人
     */
    @JsonProperty(value = "shenqingr")
    private String shenqingr;

    /**
     * 申请日期
     */
    @JsonProperty(value = "shenqingrq")
    private String shenqingrq;

    /**
     * 申请时间
     */
    @JsonProperty(value = "shenqingrbm")
    private String shenqingrbm;

    /**
     * 发货公司
     */
    @NotBlank(message = "发货公司不可为空")
    @JsonProperty(value = "shenqingrgs")
    private String shenqingrgs;

    /**
     * 客户名称(需转换id)
     */
    @NotBlank(message = "客户名称不可为空")
    @JsonProperty(value = "kehumc")
    private String kehumc;

    /**
     * 最终客户
     */
    @NotBlank(message = "最终客户不可为空")
    @JsonProperty(value = "zuizhongkh")
    private String zuizhongkh;

    /**
     * 销售合同类型 中文
     */
    @JsonProperty(value = "hetonglb")
    private String hetonglb;

    /**
     * 合同总金额
     */
    @NotNull(message = "合同总金额不可为空")
    @JsonProperty(value = "hetongzje")
    private double hetongzje;

    /**
     * 设备质保年限
     */
    @JsonProperty(value = "shebeizbnx")
    private int shebeizbnx;

    /**
     * 是否续签
     */
    @JsonProperty(value = "shifouxq")
    private int shifouxq;

    /**
     * 合作周期 开始
     */
    @JsonProperty(value = "hezuozq")
    private String hezuozq;

    /**
     * 合作周期结束
     */
    @JsonProperty(value = "hezuozqjs")
    private String hezuozqjs;

    /**
     * 合同签订类型
     */
    @JsonProperty(value = "hetongqdlx")
    private String hetongqdlx;

    /**
     * 存放位置
     */
    @JsonProperty(value = "cunfangwz")
    private String cunfangwz;

    //2023 新增字段
    /**
     * 合同状态
     */
    private String contractState;
    /**
     * 营销合同分类
     */
    private String sale_contract_type;
    /**
     * 合同合规分类
     */
    private String sale_compliance_type;
    /**
     * 合同合规状态
     */
    private String compliance_state;

    /**
     * 行明细
     */
    @JsonProperty(value = "items")
    private List<OAContractItem> items;

    /**
     * 条款明细
     */
    @JsonProperty(value="clauses")
    private List<OAContractClause> clauseItems;
}
